== Installing VPNaaS ==

apt-get install neutron-vpn-agent

## BEGIN updates to /etc/neutron/vpn_agent.ini

[vpnagent]
vpn_device_driver = neutron_vpnaas.services.vpn.device_drivers.strongswan_ipsec.StrongSwanDriver

## END

## BEGIN updates to /etc/neutron/neutron.conf

[DEFAULT]
service_plugins = router,lbaas,firewall,vpnaas

## END

## BEGIN updates to /etc/neutron/neutron_vpnaas.conf 

[service_providers] 
service_provider = VPN:vpnaas:neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default

## END

service neutron-server restart

== AppArmor changes ==

sudo ln -sf /etc/apparmor.d/usr.lib.ipsec.charon /etc/apparmor.d/disable/
sudo ln -sf /etc/apparmor.d/usr.lib.ipsec.stroke /etc/apparmor.d/disable/
service apparmor restart

== Wrapper Updates ==

cat >> /usr/bin/neutron-vpn-netns-wrapper << EOF

#!/usr/bin/python2
import sys
from neutron_vpnaas.services.vpn.common.netns_wrapper import main

if __name__ == "__main__": 
  sys.exit(main())
EOF

chmod 755 /usr/bin/neutron-vpn-netns-wrapper

service neutron-vpn-agent restart
service neutron-vpn-agent status
neutron agent-list

## NOTE TO READER: Additional examples in the book require the use of UUIDs that are unique
## to the local environment. As such, those examples are not provided here. 
